package lib.bone.nepudata.domain.dto.paper;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Column;
import javax.validation.constraints.*;
import java.util.Date;
import java.util.List;

/**
 * @Author : leiyusheng
 * @Date : 2022-1-12
 */

/**
 * @author: kindear
 * @Date : 2022-1-14
 */
@Data
@ApiModel(value = "论文新增DTO")
public class NepuPaperAddDTO {

    @NotBlank(message = "论文/成果词典ID不可为空")
    @ApiModelProperty(value = "论文/成果词典ID",notes = "")
    String paperDictId;

    /** 论文标题 @TIPS 赵春雨 **/
    @NotBlank(message = "论文标题不可为空")
    @ApiModelProperty("论文标题")
    @Column(name = "paper_title")
    String paperTitle;


//    @ApiModelProperty(value = "申请人",notes = "")
//    @Column(name = "applicant")
//    String applicant;

    //String papar

    /**
     * 第一署名单位
     */
    @NotBlank(message = "第一署名单位不可为空")
    @ApiModelProperty(value = "第一署名单位")
    String firstSignatureUnit;

    /**
     * 论文发表时间
     */
    @NotNull(message = "论文发表时间不可为空")
    @ApiModelProperty(value = "论文发表时间",notes = "论文发表时间，如2020-01-01")
    @JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
    Date paperPublicationTime;

    /**
     * 第一作者
     */
    @NotBlank(message = "第一作者不可为空")
    @ApiModelProperty(value = "第一作者")
    String firstAuthor;

    /**
     * 第一作者 ID
     */
    @NotNull(message = "第一作者ID不可为空")
    @ApiModelProperty(value = "第一作者ID",notes = "缺省值0代表不在教工系统中")
    Long firstAuthorId;

    /**
     * 第二作者
     */
//    @NotBlank(message = "第二作者不可为空")
    @ApiModelProperty(value = "第二作者")
    String secondAuthor;

    /**
     * 第二作者ID
     */
    @NotNull(message = "第二作者ID不可为空")
    @ApiModelProperty(value = "第二作者ID",notes = "缺省值0代表不在教工系统中")
    Long secondAuthorId;

    /**
     * 通讯作者
     */
//    @NotBlank(message = "通讯作者不可为空")
//    @ApiModelProperty(value = "通讯作者",notes = "")
//    String correspondingAuthor;

    /**
     * 通讯作者ID
     */
//    @NotNull(message = "通讯作者ID不可为空")
//    @ApiModelProperty(value = "通讯作者ID",notes = "缺省值0代表不在教工系统中")
//    Long correspondingAuthorId;

    /**
     * 期刊名称
     */
    @ApiModelProperty(value = "期刊名称")
    @NotBlank(message = "期刊名称不可为空")
    String journalName;

    /**
     * 刊号
     */
    @ApiModelProperty(value = "刊号")
    @NotBlank(message = "刊号不可为空")
    String issueNumber;

    /**
     * 论文总字数
     */
    @NotNull(message = "论文总字数不可为空")
    @ApiModelProperty(value = "论文总字数")
    Double paperTotalNumber;

    /**
     * 负责人总字数
     */
    @NotNull(message = "负责人总字数不可为空")
    @ApiModelProperty(value = "负责人总字数")
    Double chargeTotalNumber;


    @DecimalMin("0")
    @DecimalMax("1")
    @ApiModelProperty(value = "指导教师身份",notes = "0 无 1 第二作者")
    Integer teacherIdentity;

    @NotEmpty(message = "关联文件不可为空")
    @ApiModelProperty(value = "关联文件ID列表")
    List<String> fileIds;



    /** 全部使用封包类 int -> Integer
     * @Date : 2022-1-9 kindear
     * **/
//    @ApiModelProperty(value = "申请状态",notes = "0：未申请；1：已申请")
//    @Column(name = "apply_status")
//    Integer applyStatus;

//    @ApiModelProperty(value = "负责人id",notes = "")
//    @Column(name = "leader_id")
//            String leaderId;
//    @ApiModelProperty(value = "审核人id",notes = "")
//    @Column(name = "auditor_id")
//            String auditorId;
//    @ApiModelProperty(value = "申请状态",notes = "0:为申请；1：已申请")
//    @Column(name = "apply_status")
//            Integer applyStatus;
//    @ApiModelProperty(value = "审核状态",notes = "0：未审核；1：审核通过；2：审核拒绝")
//    @Column(name = "audit_status")
//            Integer auditStatus;
//    @NotNull(message = "工作量不可为空")
//    @ApiModelProperty(value = "工作量",notes = "")
//    @Column(name = "workload")
//    Integer workload;


}
